package edu.nuist.unit02;

/**
 * @author wangzhuangzhuang
 * @DESC: final域，编译器和处理器要遵守两个重排序规则
 * @date 2022-04-22 21:50
 */
public class FinalExample {
	int i; // 普通变量
	final int j; // final变量
	static FinalExample obj;

	public FinalExample() {
		i = 1; // 写入普通域
		j = 2; // 写入final域
	}

	public static void writer() { // 写线程A执行
		obj = new FinalExample();
	}

	public static void reader() { // 读线程B执行
		FinalExample object = obj; // 读对象引用
		int a = object.i; // 读普通域
		int b = object.j; // 读final域
	}
}